#requires AutoHotkey v2
-; UltimateKEYS (for AutoHotkey v2).ahk - 2023-09-08
+; UltimateKEYS (for AutoHotkey v2).ahk - 2023-12-28
; Website : www.ultimatekeys.info (pieter-degroote.github.io/UltimateKEYS/)
cmpQuad["3"] := "{u+2001}" ; em quad
-; Compose : Arrows and Pointers
+; Compose : Arrows and Pointing Triangles
global cmpArrow := Map()
cmpArrow["w"] := "{u+25b2}" ; (▲) black up-pointing triangle
global cmpDigitEight := Map()
global cmpCapitalP := Map()
-global cmpSemicolon := Map()
global cmpAsterisk := Map()
global cmpExclam := Map()
global cmpQuestion := Map()
cmpSymbols["o"] := "{u+00a7}" ; (§) section sign
cmpCapitalS["o"] := "{u+00a7}" ; (§) section sign
cmpSmallT["m"] := "{u+2122}" ; (™) trademark symbol
-cmpSemicolon["b"] := "{u+2022}" ; (•) bullet
-cmpSemicolon[";"] := "{u+2022}" ; (•) bullet
-cmpSemicolon["t"] := "{u+2023}" ; (‣) triangular bullet
-cmpSemicolon[">"] := "{u+2023}" ; (‣) triangular bullet
-cmpSemicolon["h"] := "{u+2043}" ; (⁃) hyphen bullet
-cmpSemicolon["-"] := "{u+2043}" ; (⁃) hyphen bullet
-cmpSemicolon["w"] := "{u+25e6}" ; (◦) white bullet
-cmpSemicolon["o"] := "{u+25e6}" ; (◦) white bullet
cmpAcuteAccent["1"] := "{u+2032}" ; (′) prime
cmpAcuteAccent["2"] := "{u+2033}" ; (″) double prime
cmpAcuteAccent["3"] := "{u+2034}" ; (‴) triple prime
cmpTilde["~"] := "{u+2248}" ; (≈) almost equal to
+; Compose : Bullets and Small Geometric Shapes (;)
+
+global cmpSemicolon := Map()
+cmpSemicolon["b"] := "{u+2022}" ; (•) bullet
+cmpSemicolon["o"] := "{u+25e6}" ; (◦) white bullet
+cmpSemicolon["h"] := "{u+2043}" ; (⁃) hyphen bullet
+cmpSemicolon["t"] := "{u+2023}" ; (‣) triangular bullet
+cmpSemicolon["q"] := "{u+25aa}" ; (▪) black small square
+cmpSemicolon["u"] := "{u+25ab}" ; (▫) white small square
+cmpSemicolon["w"] := "{u+25b4}" ; (▴) black up-pointing small triangle
+cmpSemicolon["a"] := "{u+25c2}" ; (◂) black left-pointing small triangle
+cmpSemicolon["s"] := "{u+25be}" ; (▾) black down-pointing small triangle
+cmpSemicolon["d"] := "{u+25b8}" ; (▸) black right-pointing small triangle
+cmpSemicolon["i"] := "{u+25b5}" ; (▵) white up-pointing small triangle
+cmpSemicolon["j"] := "{u+25c3}" ; (◃) white left-pointing small triangle
+cmpSemicolon["k"] := "{u+25bf}" ; (▿) white down-pointing small triangle
+cmpSemicolon["l"] := "{u+25b9}" ; (▹) white right-pointing small triangle
+cmpSemicolon[";"] := "{u+2022}" ; (•) bullet
+
+
; Compose : Vulgar Fractions
global cmpDigitOne := Map()
cmpDigitTwo["t"] := "{u+26a0}" ; (⚠) warning sign
cmpDigitTwo["u"] := "{u+26a1}" ; (⚡) high voltage sign
cmpDigitTwo["v"] := "{u+26d4}" ; (⛔) no entry
+cmpDigitTwo["w"] := "{u+231a}" ; (⌚) watch
+cmpDigitTwo["x"] := "{u+231b}" ; (⌛) hourglass
cmpDigitThree["a"] := "{u+2701}" ; (✁) upper blade scissors
cmpDigitThree["b"] := "{u+2702}" ; (✂) black scissors
>!/::Send "{u+00bf}" ; (¿) inverted question mark
>!?::Send "{u+2026}" ; (…) horizontal ellipsis
->!space::Send "{u+00a0}" ; non-breaking space (NBSP)
->!+space::Send "{u+00a0}" ; non-breaking space (NBSP)
+>!space::Send "{u+00a0}" ; non-breaking space (NBSP)
+>!+space::Send "{u+2022}" ; (•) bullet
; Configuration : Compose Key Selector
>!`::
->!sc056:: {
+>!~::
+>!sc056::
+>!+sc056:: {
ihA := InputHook("L1", gEndKeys)
ihA.Start()
ihA.Wait()
if cmpCapitalP.Has(ihB.Input)
Send cmpCapitalP[ihB.Input]
}
- else if (ihA.Input == ";") {
- if cmpSemicolon.Has(ihB.Input)
- Send cmpSemicolon[ihB.Input]
- }
else if (ihA.Input == "*") {
if cmpAsterisk.Has(ihB.Input)
Send cmpAsterisk[ihB.Input]
if cmpGreaterThan.Has(ihB.Input)
Send cmpGreaterThan[ihB.Input]
}
+ else if (ihA.Input == ";") {
+ if cmpSemicolon.Has(ihB.Input)
+ Send cmpSemicolon[ihB.Input]
+ }
else if (ihA.Input == "1") {
if cmpDigitOne.Has(ihB.Input)
Send cmpDigitOne[ihB.Input]